"""
This module showcases nested classes and type hints.

"""


class OuterClass:
    """
    OuterClass contains an inner class and demonstrates nested documentation.

    Attributes:
        description (str): Description of the OuterClass instance.
    """

    def __init__(self, description):
        """
        Initialize OuterClass with a description.

        Args:
            description (str): Description of the instance.
        """
        self.description = description

    class InnerClass:
        """
        InnerClass demonstrates a nested class within OuterClass.

        Attributes:
            name (str): Name of the InnerClass instance.
        """

        def __init__(self, name):
            """
            Initialize InnerClass with a name.

            Args:
                name (str): Name of the InnerClass instance.
            """
            self.name = name

        def inner_method(self):
            """
            A sample method in InnerClass.

            Returns:
                str: A message from InnerClass.
            """
            return f"InnerClass with name: {self.name}"

    def outer_method(self):
        """
        A sample method in OuterClass.

        Returns:
            str: A message from OuterClass.
        """
        return f"OuterClass with description: {self.description}"
